#ifndef CORDERMANAGER_H
#define CORDERMANAGER_H

#include <QDateTime>
#include <QString>
#include <qtypes.h>

class COrderInRam
{
public:
    COrderInRam(QObject *parent);
    ~COrderInRam();

    qlonglong llSecond2End;//从投产到交付之间的时间，秒
    qlonglong getSecond2now();//计算从投产到当前之间的时间，秒，用llSecond2Cal和dtCal进行简化计算
    QDateTime dtOperate;//投产时间
    QDateTime dtPlanFinish;//计划交付时间

    bool setOrderTime(QDateTime vS, QDateTime vE);//设置订单时间并进行计算，可以由COrderManager监控事件发生然后调用

private:
    qlonglong llSecond2Cal;//从投产到最后一次计算之间的时间，秒
    QDateTime dtCal;//进行计算的时间
    void timerEvent(QTimerEvent *e);//定时更新一下llSecond2Cal，防止到了下班的时间段计算一直出错

};

class COrderManager
{
public:
    COrderManager();
    virtual qlonglong getSecond2now(QString vLocalOrderNum);  // 添加virtual关键字
    virtual qlonglong getSecond2Finishu(QString vLocalOrderNum);  // 添加virtual关键字

private:
    QHash<QString/*localordernum*/, COrderInRam *> orders;
};

#endif // CORDERMANAGER_H